The present invention is directed to an improvement in computing systems and in particular to a computer system providing for multiple language support for component-based systems.
Recent developments in computing have led to the development of component-based systems. Component-based systems are intended to permit software components to be designed, implemented and used across different computers and platforms. Typically, component-based systems include request broker software which enables communication between components. Such systems also permit development of software for the component-based systems. Object-oriented software is a common choice of use in building component-based systems themselves, as well as the software which make up the components in the systems.
A standard which has been developed for component-based systems is the Common Object Request Broker Architecture (CORBA) standard. CORBA defines objects and interfaces. The interface for objects in the CORBA architecture is specified by the Interface Definition Language (IDL). Objects specified by an IDL description may be used by other objects without knowledge of how those objects are implemented. Systems built using the CORBA architecture are able to include object-oriented, distributed software.
Systems which support component software, such as those which adhere to the CORBA architecture, typically include user interfaces which permit the user to develop objects for the component-based environment. Advantageously, such systems will include tools which assist the user by providing object-oriented frameworks or other system-generated objects which may provide a starting point or otherwise assist the user in the development of new objects for the component-based system. Because the component-based model permits software written in different languages to be integrated into a single system, the system which supports software development for a component-based system need not be specific to a given programming language.
It is therefore desirable to have a computer system which is capable of permitting users to develop software for component-based systems which supports multiple languages for the component based system.
According to one aspect of the present invention, there is provided an improved system for supporting multiple languages in component-based systems.
According to another aspect of the present invention, there is provided a computer program product for multiple language support in a component-based system, having a user interface permitting a user to create a set of created objects for use in the component-based system, each created object having a high-level definition independent of programming implementation languages, the user interface further permitting a user to select a programming language, from one of a number of supported languages, for implementation of the set of created objects, a pre-defined set of mapping objects, each mapping object providing a mapping from the high-level definitions of the created objects to a language-specific object implementation in a one of the number of supported languages, one or more system objects for selecting for use in the system, and for displaying to the user, the programming language-specific implementation of the set of created objects for the language selected by the user, whereby for each created object in the set of created objects, each one of the set of mapping objects maps the high-level definition of the object to a programming language-specific object implementation which is persistently stored.
According to another aspect of the present invention, there is provided a computer program product as described above in which the high-level definition of the created objects is provided in the Interface Definition Language of the Common Object Request Broker Architecture and in which the set of mapping objects includes mapping objects for mapping from the Interface Definition Language to a Java programming language implementation and from the Interface Definition Language to a C++ programming language implementation following the Object Management Group Interface Definition Language to Java and to C++ Language Mapping Specifications, respectively.
According to another aspect of the present invention, there is provided a computer program product as described above in which each high-level created-object definition is represented by a tree structure, each node of which comprises a high-level type definition including one or more of an attribute type, a method return type, and a method parameter type, and in which each mapping object traverses the tree structure to map the high-level type definitions in the tree structure to programming language specific type definitions.
According to another aspect of the present invention, there is provided a computer program product as described above in which the computer program product includes a computer usable medium having computer readable program code embodied in the medium.
According to another aspect of the present invention, there is provided a method for providing multi-language support in a component-based computer system, the method having the steps of permitting a user to create a set of created objects for use in the component-based system, each created object having a definition in the Interface Definition Language of the Common Object Request Broker Architecture, permitting a user to select a programming language, from one of a number of supported languages, for implementation of the set of created objects, providing a mapping based on the Object Management Group mapping specifications for each of the created objects, from the definition in the Interface Definition Language of the Common Object Request Broker Architecture for the created objects to a language-specific object implementation in each one of the number of supported languages, selecting for use in the system, and for displaying to the user, the programming language-specific implementations of the set of created objects for the language selected by the user.
According to another aspect of the present invention, there is provided an article of manufacture including a computer usable medium having computer readable program code embodied therein for multi-language support in a component-based system, the computer readable program code in said article of manufacture including computer readable program code for causing a computer to carry out the steps in the method described above.
Advantages of the present invention include the ability to generate implementations of language-specific objects without requiring the user to design the language-specific implementation. Language dependent features of objects in the component-based system may be hidden from the user. The user may also select different language implementations for the object. The system may maintain implementations for all supported languages for the object and the user may change the implementation if desirable.